package com.woniuxy.rms.dao;

import com.woniuxy.rms.pojo.Complain;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface ComplainMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Complain record);

    int insertSelective(Complain record);

    Complain selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Complain record);

    int updateByPrimaryKey(Complain record);
    /**
     * Description : 获取投诉列表  <br/>
     * ChangeLog : 1. 创建 (2020/3/30 0030 下午 5:43 [Administrator]);
     * @param currentPage 当前页
     * @param pageSize 页大小
     * @param status 处理状态
     * @param complainType 被投诉类型 0-动态  1-商品   2-服务  3-活动
     * @return com.woniuxy.rms.util.DataResult
     */
    List<Complain> findByPage(@Param("currentPage") Integer currentPage,
                              @Param("pageSize") Integer pageSize,
                              @Param("status") Integer status,
                              @Param("complainType") Integer complainType);

    /**
     * Description : 改变投诉处理状态  <br/>
     * ChangeLog : 1. 创建 (2020/3/30 0030 下午 6:42 [Administrator]);
     * @param id
     * @param status
     * @return void
    */
    @Update("update complain set status = #{status},dispose_time = now() where id = #{id}")
    void checkStatus(@Param("id") Long id,@Param("status") Integer status);

    /**
     * Description : 通过id查询投诉信息  <br/>
     * ChangeLog : 1. 创建 (2020/4/1 0001 下午 6:23 [Administrator]);
     * @param id
     * @return com.woniuxy.rms.pojo.Complain
    */
    @Select("select c.*,U.account from complain c left join Users U on c.user_id = U.id where c.id = #{value}")
    Complain findById(Long id);

    /**
     * Description : 通过被投诉的id和类型查询被投诉次数  <br/>
     * ChangeLog : 1. 创建 (2020/4/1 0001 下午 6:40 [Administrator]);
     * @param complain
     * @param complainType
     * @return java.lang.Integer
    */
    @Select("select count(id) from complain where complain = #{complain} and complainType = #{complainType}")
    Integer findCountByComplain(@Param("complain") Long complain,@Param("complainType") Integer complainType);
}